﻿// -----------------------------------------------------------------------
// <copyright file="INotificationListenerService.cs" company="Zen Design Corp">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace Zen.BlackBerry.Acknowledgement
{
	using System.Collections.Generic;

	/// <summary>
	/// Business logic relating to the notification of the acknowledgement listeners. 
	/// </summary>
	public interface INotificationListenerService
	{
		/// <summary>
		/// Adds the listener to the collection of notification listeners 
		/// associated with the specified push application id.
		/// </summary>
		/// <param name="pushApplicationId">The push application id.</param>
		/// <param name="listener">The listener.</param>
		void AddListener(string pushApplicationId, NotificationListener listener);

		/// <summary>
		/// Adds the listeners to the collection of notification listeners 
		/// associated with the specified push application id.
		/// </summary>
		/// <param name="pushApplicationId">The push application id.</param>
		/// <param name="listeners">The listeners.</param>
		void AddListeners(string pushApplicationId, IEnumerable<NotificationListener> listeners);

		/// <summary>
		/// Passes the notification to qualifying listener objects.
		/// </summary>
		/// <param name="notification">The notification.</param>
		void NotifyListeners(Notification notification);
	}
}
